.TH std::bitset::test 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::bitset::test \- std::bitset::test

.SH Synopsis
   bool test( std::size_t pos ) const;  (constexpr since C++23)

   Returns the value of the bit at the position pos (counting from 0).

   Unlike operator[], performs a bounds check and throws std::out_of_range if pos does
   not correspond to a valid position in the bitset.

.SH Parameters

   pos - position of the bit to return (counting from 0)

.SH Return value

   true if the requested bit is set, false otherwise.

.SH Exceptions

   std::out_of_range if pos does not correspond to a valid position within the bitset.

.SH Example


// Run this code

 #include <bit>
 #include <bitset>
 #include <cassert>
 #include <iostream>
 #include <stdexcept>

 int main()
 {
     std::bitset<10> b1("1111010000");

     std::size_t idx = 0;
     while (idx < b1.size() && !b1.test(idx))
         ++idx;

     assert(static_cast<int>(idx) == std::countr_zero(b1.to_ulong()));

     if (idx < b1.size())
         std::cout << "The first set bit is at index " << idx << '\\n';
     else
         std::cout << "no set bits\\n";

     try
     {
         std::bitset<0B10'1001'1010> bad;
         if (bad.test(bad.size()))
             std::cout << "Expect unexpected!\\n";
     }
     catch (std::out_of_range const& ex)
     {
         std::cout << "Exception: " << ex.what() << '\\n';
     }
 }

.SH Possible output:

 The first set bit is at index 4
 Exception: bitset::test: __position (which is 666) >= _Nb (which is 666)

.SH See also

   operator[]     accesses specific bit
                  \fI(public member function)\fP
   popcount       counts the number of 1 bits in an unsigned integer
   (C++20)        \fI(function template)\fP
   has_single_bit checks if a number is an integral power of 2
   (C++20)        \fI(function template)\fP
